1. Technical Field
This invention relates generally to improvements in ATM connection topologies which provide redundant connection paths without the need to replicate ATM switches.
2. Related Information
Asynchronous Transfer Mode (ATM) is a high bandwidth network transmission and switching technology which provides the ability to cross LAN and WAN boundaries, and can transport different voice, data and video signals. FIG. 1 shows an illustrative example of multiple ATM switches connected to form a network. Computers 1 and 2 are coupled to a hub 4 which is in turn connected to ATM switch 6. Computer 3 is coupled to ATM switch 5 which is in turn coupled to ATM switch 9 within a wide-area network (WAN) 8. Similarly, computer 7 is coupled to ATM switch 6 which is coupled to ATM switch 9.
The topology shown in FIG. 1 allows each computer to communicate with the others through one or more ATM switches. Computers 1 and 2 may be coupled to an Ethernet LAN and thus include Ethernet interfaces 1a and 2a, respectively. Hub 4 may serve to convert ATM cell switching and forwarding information into non-ATM protocols such as Ethernet and vice versa. Computer 3 and 7, on the other hand, may be directly linked to ATM switches through ATM interfaces 3a and 7a, respectively. It will be appreciated that although computers are shown connected to ATM switches in FIG. 1, in general any type of data source or data sink can be coupled to an ATM switch, and the present invention also contemplates such devices. Examples include net server routers, video data sources, a modem pool, or the like.
ATM technology contemplates the transmission of fixed size data "cells", a connection-oriented topology, hardware routing features, and rate independence. Each ATM cell has a fixed cell size of 53 bytes, compared to typical LAN packets of several kilobytes. ATM cells consist of a 5 byte header and a 48 byte payload. By limiting the amount of processing required to switch each cell, it is possible to implement switching functions in hardware, with corresponding potential for higher bandwidths.
Unlike connectionless Ethernet LANs, the ATM paradigm requires that a connection be established between source and destination switches before any data can flow between them. Since connections are established only when requested by an end station, ATM switches allocate bandwidth on demand. The use of hardware routing instead of software routing greatly reduces cell delays down to a few microseconds. In addition, ATM does not specify any specific rates or physical media, allowing it to scale up to support a variety of user requirements.
A typical ATM switch must perform three main functions: call set-up, maintenance and tear-down; cell routing; and traffic management. A system manager within the ATM switch negotiates connection parameters during the call set-up process. At tear-down, the connections are terminated and switch resources are freed.
ATM switches manage virtual channels (VCs) and virtual paths (VPs). Identifiers indicating a particular VC and VP are known as a virtual channel identifier (VCI) and virtual path identifier (VPI), respectively. Referring to FIG. 2, an ATM physical link 200 may carry one or more VPs 201, 202, and 203. Each VP can be viewed as a cable that contains many wires or VCs. For example, VP3 (element 203) contains three VCs 208, 209 and 210.
Every ATM switch contains a local translation table that maintains routing information, as well as new VPI/VCI values for each connection. VPI/VCI values are established for each switch during call set-up and may be reused after tear-down. This allows ATM to support very large networks while keeping the connection identifiers short enough to maintain low switch latency times.
The basic operation of an ATM switch is to receive a cell across a link on a known VPI/VCI value; look up the connection value in the local translation table to determine the outgoing port (or ports) of the connection and the new VPI/VCI value of the connection on that link; and to then retransmit the cell on that outgoing link with the appropriate connection identifiers.
FIG. 3 is an exemplary schematic representation of the VPs and VCs within a switch. VC1, part of element 301, is connected on output to VC3 of VP3 (element 302). VC2, also part of element 301, is connected to VC4 of element 304. Both VC1 and VC2 within VP4 (element 303) are connected to VC1 and VC2 of VP5 on output. Connection 303 is an example of a switched virtual path wherein the path as a whole is switched.
FIG. 4 provides an example of VP switching showing VPI/VCI value assignments. Computers 401 and 402 are connected to ATM switch 403, and computer 406 and 407 are connected to ATM switch 405. Middle ATM switch 404 performs the VP switching function. A VP is established which extends the length of all three switches. Note that in general, VPI and VCI identifiers are unique, and VP switching is a "special case" of ATM switching. The VC extends across all three switches and computers. The VPI/VCI value pairs are represented within parentheses as (VPI, VCI).
Each ATM switch maintains a local translation routing table which contains new VPI/VCI values for each connection. During operation, each ATM switch scans the incoming cells at its input ports, determines the output port(s) it is to be transmitted from and changes the VPI/VCI field in the cell header in preparation for transmission to the output port(s). Middle ATM switch 404, which performs the VP switching function, does not alter the value of the VCI. Thus, in conventional ATM networks, a central switch such as ATM switch 404 is used to perform virtual path switching.
One problem inherent in networks of ATM switches is the risk that an ATM switch will fail, thus disrupting one or more portions of the network. One solution to this problem is to provide redundant ATM switches at various points in the network, thus providing some measure of fault tolerance in the system.
FIG. 5, for example, shows one possible solution to the above-identified problems. Redundant ATM switches 505 and 506 are each coupled to each ATM node 501 through 504. Each redundant ATM switch 505 and 506 is, in turn, coupled to an external connection which may be further coupled to another ATM switch 507.
The failure of either ATM switch 505 or 506 allows the network to continue operation since each ATM node remains coupled to an operable ATM switch. However, the solution shown in FIG. 5 is undesirable because of its cost (i.e., redundant ATM switches 505 and 506) and complexity. Accordingly, there remains a problem of providing redundant capabilities without replicating ATM switches.
Another problem inherent in networks of ATM switches is the creation of load imbalances which can result when there is more than one path between two endpoints. Thus, for example, referring to FIG. 5, traffic from ATM node 501 destined for a node on the other side of ATM switch 507 could take either one of two paths: one through ATM switch 505 and external connection A, or one through ATM switch 506 and external connection B. However, assume that for various reasons, ATM nodes 501 through 504 all have paths set up through ATM switch 505, causing external connection A to be fully used, but external connection B (and ATM switch 506) to be entirely unused. This results in traffic being unevenly distributed among alternative paths.
Yet another disadvantage with the redundant ATM switch configuration shown in FIG. 5 is the cost associated with providing additional ATM ports. ATM switches tend to be more expensive given that they have more ports, so the total ATM port count of the system is an important parameter. Moreover, each ATM node (elements 501 through 504) must support a minimum of two ATM ports. A disadvantage of the redundant ATM switch configuration shown in FIG. 5 is that if load balancing is to be addressed, it must be done in the software residing in the ATM nodes. Accordingly, there remains a need for improvement.